package cn.tannn.ops.customer.controller.vo;


import cn.tannn.ops.common.pojo.TableIdTimeVO;
import cn.tannn.ops.customer.constant.MenuStatus;
import cn.tannn.ops.customer.constant.MenuType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

/**
 * 模块表
 *
 * @author tnnn
 * @version V1.0
 * @date 2022-11-8
 */
@Schema(description = "菜单视图")
@ToString
@Getter
@Setter
@NoArgsConstructor
public class MenuVO extends TableIdTimeVO<MenuVO> {

    /**
     * code
     */
    @Schema(description = "code")
    private String code;


    /**
     * 菜单名[同级名称唯一]
     */
    @Schema(description = "菜单名[同级名称唯一]")
    private String name;


    /**
     * 父级code
     */
    @Schema(description = "父级code")
    private String parentCode;


    /**
     * 父级名称
     */
    @Schema(description = "父级名称")
    private String parentName;


    /**
     * 排序[数字越小排在越前面]
     */
    @Schema(description = "排序[数字越小排在越前面]")
    private Integer sort;


    /**
     * 菜单组件
     */
    @Schema(description = "菜单组件")
    private String component;


    /**
     * 菜单图标
     */
    @Schema(description = "菜单图标")
    private String componentName;


    /**
     * 图标
     */
    @Schema(description = "图标")
    private String icon;


    /**
     * 菜单路由
     */
    @Schema(description = "菜单路由")
    private String router;


    /**
     * 菜单类型;0、节点；1、功能；2、按钮
     *
     * @see MenuType
     */
    @Schema(description = "菜单类型(0、节点；1、功能；2、按钮)")
    private Integer type;


    /**
     * 菜单状态;0、禁用；1、启用；默认启用
     *
     * @see MenuStatus
     */
    @Schema(description = "节点状态(0、禁用；1、启用；默认启用)")
    private Integer status;

}
